
// Generated from Jass.g4 by ANTLR 4.13.2

#pragma once


#include "antlr4-runtime.h"
#include "JassParser.h"


namespace antlrcppjassparser {

/**
 * This class defines an abstract visitor for a parse tree
 * produced by JassParser.
 */
class  JassVisitor : public antlr4::tree::AbstractParseTreeVisitor {
public:

  /**
   * Visit parse trees produced by JassParser.
   */
    virtual std::any visitProgram(JassParser::ProgramContext *context) = 0;

    virtual std::any visitTypeDeclaration(JassParser::TypeDeclarationContext *context) = 0;

    virtual std::any visitBasicType(JassParser::BasicTypeContext *context) = 0;

    virtual std::any visitArrayType(JassParser::ArrayTypeContext *context) = 0;

    virtual std::any visitNothingType(JassParser::NothingTypeContext *context) = 0;

    virtual std::any visitBasicGlobal(JassParser::BasicGlobalContext *context) = 0;

    virtual std::any visitDefinitionGlobal(JassParser::DefinitionGlobalContext *context) = 0;

    virtual std::any visitBasicLocal(JassParser::BasicLocalContext *context) = 0;

    virtual std::any visitDefinitionLocal(JassParser::DefinitionLocalContext *context) = 0;

    virtual std::any visitAssignTail(JassParser::AssignTailContext *context) = 0;

    virtual std::any visitBaseMultiplicationExpression(JassParser::BaseMultiplicationExpressionContext *context) = 0;

    virtual std::any visitDivisionExpression(JassParser::DivisionExpressionContext *context) = 0;

    virtual std::any visitMultiplicationExpression(JassParser::MultiplicationExpressionContext *context) = 0;

    virtual std::any visitAdditionExpression(JassParser::AdditionExpressionContext *context) = 0;

    virtual std::any visitSubtrationExpression(JassParser::SubtrationExpressionContext *context) = 0;

    virtual std::any visitBaseAdditionExpression(JassParser::BaseAdditionExpressionContext *context) = 0;

    virtual std::any visitBooleanLessExpression(JassParser::BooleanLessExpressionContext *context) = 0;

    virtual std::any visitBooleanGreaterExpression(JassParser::BooleanGreaterExpressionContext *context) = 0;

    virtual std::any visitBaseBoolComparisonExpression(JassParser::BaseBoolComparisonExpressionContext *context) = 0;

    virtual std::any visitBooleanLessOrEqualsExpression(JassParser::BooleanLessOrEqualsExpressionContext *context) = 0;

    virtual std::any visitBooleanGreaterOrEqualsExpression(JassParser::BooleanGreaterOrEqualsExpressionContext *context) = 0;

    virtual std::any visitNotEqualsExpression(JassParser::NotEqualsExpressionContext *context) = 0;

    virtual std::any visitBaseBoolExpression(JassParser::BaseBoolExpressionContext *context) = 0;

    virtual std::any visitEqualsExpression(JassParser::EqualsExpressionContext *context) = 0;

    virtual std::any visitBaseBoolAndsExpression(JassParser::BaseBoolAndsExpressionContext *context) = 0;

    virtual std::any visitBooleanAndExpression(JassParser::BooleanAndExpressionContext *context) = 0;

    virtual std::any visitBaseBoolOrsExpression(JassParser::BaseBoolOrsExpressionContext *context) = 0;

    virtual std::any visitBooleanOrExpression(JassParser::BooleanOrExpressionContext *context) = 0;

    virtual std::any visitReferenceExpression(JassParser::ReferenceExpressionContext *context) = 0;

    virtual std::any visitStringLiteralExpression(JassParser::StringLiteralExpressionContext *context) = 0;

    virtual std::any visitIntegerLiteralExpression(JassParser::IntegerLiteralExpressionContext *context) = 0;

    virtual std::any visitHexIntegerLiteralExpression(JassParser::HexIntegerLiteralExpressionContext *context) = 0;

    virtual std::any visitDollarHexIntegerLiteralExpression(JassParser::DollarHexIntegerLiteralExpressionContext *context) = 0;

    virtual std::any visitRawcodeLiteralExpression(JassParser::RawcodeLiteralExpressionContext *context) = 0;

    virtual std::any visitRealLiteralExpression(JassParser::RealLiteralExpressionContext *context) = 0;

    virtual std::any visitFunctionReferenceExpression(JassParser::FunctionReferenceExpressionContext *context) = 0;

    virtual std::any visitNullExpression(JassParser::NullExpressionContext *context) = 0;

    virtual std::any visitTrueExpression(JassParser::TrueExpressionContext *context) = 0;

    virtual std::any visitFalseExpression(JassParser::FalseExpressionContext *context) = 0;

    virtual std::any visitArrayReferenceExpression(JassParser::ArrayReferenceExpressionContext *context) = 0;

    virtual std::any visitFunctionCallExpression(JassParser::FunctionCallExpressionContext *context) = 0;

    virtual std::any visitParentheticalExpression(JassParser::ParentheticalExpressionContext *context) = 0;

    virtual std::any visitNotExpression(JassParser::NotExpressionContext *context) = 0;

    virtual std::any visitNegateExpression(JassParser::NegateExpressionContext *context) = 0;

    virtual std::any visitExpression(JassParser::ExpressionContext *context) = 0;

    virtual std::any visitFunctionExpression(JassParser::FunctionExpressionContext *context) = 0;

    virtual std::any visitSingleArgument(JassParser::SingleArgumentContext *context) = 0;

    virtual std::any visitListArgument(JassParser::ListArgumentContext *context) = 0;

    virtual std::any visitEmptyArgument(JassParser::EmptyArgumentContext *context) = 0;

    virtual std::any visitCallStatement(JassParser::CallStatementContext *context) = 0;

    virtual std::any visitSetStatement(JassParser::SetStatementContext *context) = 0;

    virtual std::any visitArrayedAssignmentStatement(JassParser::ArrayedAssignmentStatementContext *context) = 0;

    virtual std::any visitReturnStatement(JassParser::ReturnStatementContext *context) = 0;

    virtual std::any visitReturnNothingStatement(JassParser::ReturnNothingStatementContext *context) = 0;

    virtual std::any visitExitWhenStatement(JassParser::ExitWhenStatementContext *context) = 0;

    virtual std::any visitLocalStatement(JassParser::LocalStatementContext *context) = 0;

    virtual std::any visitLoopStatement(JassParser::LoopStatementContext *context) = 0;

    virtual std::any visitIfStatement(JassParser::IfStatementContext *context) = 0;

    virtual std::any visitDebugStatement(JassParser::DebugStatementContext *context) = 0;

    virtual std::any visitSimpleIfStatement(JassParser::SimpleIfStatementContext *context) = 0;

    virtual std::any visitIfElseStatement(JassParser::IfElseStatementContext *context) = 0;

    virtual std::any visitIfElseIfStatement(JassParser::IfElseIfStatementContext *context) = 0;

    virtual std::any visitParam(JassParser::ParamContext *context) = 0;

    virtual std::any visitSingleParameter(JassParser::SingleParameterContext *context) = 0;

    virtual std::any visitListParameter(JassParser::ListParameterContext *context) = 0;

    virtual std::any visitNothingParameter(JassParser::NothingParameterContext *context) = 0;

    virtual std::any visitGlobalsBlock(JassParser::GlobalsBlockContext *context) = 0;

    virtual std::any visitTypeDeclarationBlock(JassParser::TypeDeclarationBlockContext *context) = 0;

    virtual std::any visitNativeBlock(JassParser::NativeBlockContext *context) = 0;

    virtual std::any visitBlock(JassParser::BlockContext *context) = 0;

    virtual std::any visitFunctionBlock(JassParser::FunctionBlockContext *context) = 0;

    virtual std::any visitStatements(JassParser::StatementsContext *context) = 0;

    virtual std::any visitNewlines(JassParser::NewlinesContext *context) = 0;

    virtual std::any visitNewlines_opt(JassParser::Newlines_optContext *context) = 0;

    virtual std::any visitPnewlines(JassParser::PnewlinesContext *context) = 0;


};

}  // namespace antlrcppjassparser
